
<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
        <meta name="description" content="Documentation for PixivFE">
      
      
      
      
        <link rel="prev" href="../environment-variables/">
      
      
        <link rel="next" href="../hosting-image-proxy-server/">
      
      
      <link rel="icon" href="../favicon.ico">
      <meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.15">
    
    
      
        <title>Hosting PixivFE - PixivFE Documentation</title>
      
    
    
      <link rel="stylesheet" href="../assets/stylesheets/main.7e359304.min.css">
      
        
        <link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
      
      


    
    
      
    
    
      
        
        
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
        <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
      
    
    
      <link rel="stylesheet" href="../css/extra.css">
    
    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
    
      

    
    
    
   <link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>
    html.glightbox-open { overflow: initial; height: 100%; }
    .gslide-title { margin-top: 0px; user-select: text; }
    .gslide-desc { color: #666; user-select: text; }
    .gslide-image img { background: white; }
    .gscrollbar-fixer { padding-right: 15px; }
    .gdesc-inner { font-size: 0.75rem; }
    body[data-md-color-scheme="slate"] .gdesc-inner { background: var(--md-default-bg-color);}
    body[data-md-color-scheme="slate"] .gslide-title { color: var(--md-default-fg-color);}
    body[data-md-color-scheme="slate"] .gslide-desc { color: var(--md-default-fg-color);}</style> <script src="../assets/javascripts/glightbox.min.js"></script></head>
  
  
    
    
      
    
    
    
    
    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="indigo">
  
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#hosting-pixivfe" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
    
      

  

<header class="md-header md-header--shadow" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="Header">
    <a href=".." title="PixivFE Documentation" class="md-header__button md-logo" aria-label="PixivFE Documentation" data-md-component="logo">
      
  
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4.935 0A4.924 4.924 0 0 0 0 4.935v14.13A4.924 4.924 0 0 0 4.935 24h14.13A4.924 4.924 0 0 0 24 19.065V4.935A4.924 4.924 0 0 0 19.065 0zm7.81 4.547c2.181 0 4.058.676 5.399 1.847a6.118 6.118 0 0 1 2.116 4.66c.005 1.854-.88 3.476-2.257 4.563-1.375 1.092-3.225 1.697-5.258 1.697-2.314 0-4.46-.842-4.46-.842v2.718c.397.116 1.048.365.635.779H5.79c-.41-.41.19-.65.644-.779V7.666c-1.053.81-1.593 1.51-1.868 2.031.32 1.02-.284.969-.284.969l-1.09-1.73s3.868-4.39 9.553-4.39zm-.19.971c-1.423-.003-3.184.473-4.27 1.244v8.646c.988.487 2.484.832 4.26.832h.01c1.596 0 2.98-.593 3.93-1.533.952-.948 1.486-2.183 1.492-3.683-.005-1.54-.504-2.864-1.42-3.86-.918-.992-2.274-1.645-4.002-1.646Z"/></svg>

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            PixivFE Documentation
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
              Hosting PixivFE
            
          </span>
        </div>
      </div>
    </div>
    
      
        <form class="md-header__option" data-md-component="palette">
  
    
    
    
    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="indigo"  aria-label="Switch to dark theme"  type="radio" name="__palette" id="__palette_0">
    
      <label class="md-header__button md-icon" title="Switch to dark theme" for="__palette_1" hidden>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
      </label>
    
  
    
    
    
    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="custom" data-md-color-accent="indigo"  aria-label="Switch to light theme"  type="radio" name="__palette" id="__palette_1">
    
      <label class="md-header__button md-icon" title="Switch to light theme" for="__palette_0" hidden>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
      </label>
    
  
</form>
      
    
    
      <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
    
    
    
      <label class="md-header__button md-icon" for="__search">
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
      </label>
      <div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
      <label class="md-search__icon md-icon" for="__search">
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
      </label>
      <nav class="md-search__options" aria-label="Search">
        
        <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
          
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
        </button>
      </nav>
      
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="search-result">
          <div class="md-search-result__meta">
            Initializing search
          </div>
          <ol class="md-search-result__list" role="presentation"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
    
    
      <div class="md-header__source">
        <a href="https://codeberg.org/vnpower/pixivfe" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    vnpower/pixivfe
  </div>
</a>
      </div>
    
  </nav>
  
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
          
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    



<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href=".." title="PixivFE Documentation" class="md-nav__button md-logo" aria-label="PixivFE Documentation" data-md-component="logo">
      
  
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4.935 0A4.924 4.924 0 0 0 0 4.935v14.13A4.924 4.924 0 0 0 4.935 24h14.13A4.924 4.924 0 0 0 24 19.065V4.935A4.924 4.924 0 0 0 19.065 0zm7.81 4.547c2.181 0 4.058.676 5.399 1.847a6.118 6.118 0 0 1 2.116 4.66c.005 1.854-.88 3.476-2.257 4.563-1.375 1.092-3.225 1.697-5.258 1.697-2.314 0-4.46-.842-4.46-.842v2.718c.397.116 1.048.365.635.779H5.79c-.41-.41.19-.65.644-.779V7.666c-1.053.81-1.593 1.51-1.868 2.031.32 1.02-.284.969-.284.969l-1.09-1.73s3.868-4.39 9.553-4.39zm-.19.971c-1.423-.003-3.184.473-4.27 1.244v8.646c.988.487 2.484.832 4.26.832h.01c1.596 0 2.98-.593 3.93-1.533.952-.948 1.486-2.183 1.492-3.683-.005-1.54-.504-2.864-1.42-3.86-.918-.992-2.274-1.645-4.002-1.646Z"/></svg>

    </a>
    PixivFE Documentation
  </label>
  
    <div class="md-nav__source">
      <a href="https://codeberg.org/vnpower/pixivfe" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    vnpower/pixivfe
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href=".." class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Home
  </span>
  

      </a>
    </li>
  

    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href="../instance-list.md" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Instance list
  </span>
  

      </a>
    </li>
  

    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href="../public-image-proxies.md" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Public image proxies
  </span>
  

      </a>
    </li>
  

    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href="../known-quirks/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Known quirks
  </span>
  

      </a>
    </li>
  

    
      
      
  
  
    
  
  
  
    
    
      
        
      
        
      
        
      
        
      
    
    
      
        
        
      
    
    
    <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked>
        
          
          <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
            
  
  <span class="md-ellipsis">
    Hosting
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="true">
          <label class="md-nav__title" for="__nav_5">
            <span class="md-nav__icon md-icon"></span>
            Hosting
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../environment-variables/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Environment variables
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
    
  
  
  
    <li class="md-nav__item md-nav__item--active">
      
      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
      
      
        
      
      
        <label class="md-nav__link md-nav__link--active" for="__toc">
          
  
  <span class="md-ellipsis">
    Hosting PixivFE
  </span>
  

          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <a href="./" class="md-nav__link md-nav__link--active">
        
  
  <span class="md-ellipsis">
    Hosting PixivFE
  </span>
  

      </a>
      
        

<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#docker" class="md-nav__link">
    <span class="md-ellipsis">
      Docker
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Docker">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#docker-compose" class="md-nav__link">
    <span class="md-ellipsis">
      Docker Compose
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Docker Compose">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-setting-up-the-repository" class="md-nav__link">
    <span class="md-ellipsis">
      1. Setting up the repository
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2-set-token" class="md-nav__link">
    <span class="md-ellipsis">
      2. Set token
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3-configure-environment-variables" class="md-nav__link">
    <span class="md-ellipsis">
      3. Configure environment variables
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#4-compose" class="md-nav__link">
    <span class="md-ellipsis">
      4. Compose!
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#docker-cli" class="md-nav__link">
    <span class="md-ellipsis">
      Docker CLI
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Docker CLI">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-setting-up-the-repository_1" class="md-nav__link">
    <span class="md-ellipsis">
      1. Setting up the repository
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2-configure-environment-variables" class="md-nav__link">
    <span class="md-ellipsis">
      2. Configure environment variables
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3-deploying-pixivfe" class="md-nav__link">
    <span class="md-ellipsis">
      3. Deploying PixivFE
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#binary" class="md-nav__link">
    <span class="md-ellipsis">
      Binary
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Binary">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-setting-up-the-repository_2" class="md-nav__link">
    <span class="md-ellipsis">
      1. Setting up the repository
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2-configure-environment-variables_1" class="md-nav__link">
    <span class="md-ellipsis">
      2. Configure environment variables
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3-deploying-pixivfe_1" class="md-nav__link">
    <span class="md-ellipsis">
      3. Deploying PixivFE
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#4-deploying-caddy" class="md-nav__link">
    <span class="md-ellipsis">
      4. Deploying Caddy
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#updating" class="md-nav__link">
    <span class="md-ellipsis">
      Updating
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#docker_1" class="md-nav__link">
    <span class="md-ellipsis">
      Docker
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Docker">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#docker-compose_1" class="md-nav__link">
    <span class="md-ellipsis">
      Docker Compose
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#docker-cli_1" class="md-nav__link">
    <span class="md-ellipsis">
      Docker CLI
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#binary_1" class="md-nav__link">
    <span class="md-ellipsis">
      Binary
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#acknowledgements" class="md-nav__link">
    <span class="md-ellipsis">
      Acknowledgements
    </span>
  </a>
  
</li>
      
    </ul>
  
</nav>
      
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../hosting-image-proxy-server/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Hosting an image proxy server for Pixiv
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../obtaining-pixivfe-token/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Obtaining the PIXIVFE_TOKEN cookie
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              
              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#docker" class="md-nav__link">
    <span class="md-ellipsis">
      Docker
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Docker">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#docker-compose" class="md-nav__link">
    <span class="md-ellipsis">
      Docker Compose
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Docker Compose">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-setting-up-the-repository" class="md-nav__link">
    <span class="md-ellipsis">
      1. Setting up the repository
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2-set-token" class="md-nav__link">
    <span class="md-ellipsis">
      2. Set token
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3-configure-environment-variables" class="md-nav__link">
    <span class="md-ellipsis">
      3. Configure environment variables
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#4-compose" class="md-nav__link">
    <span class="md-ellipsis">
      4. Compose!
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#docker-cli" class="md-nav__link">
    <span class="md-ellipsis">
      Docker CLI
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Docker CLI">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-setting-up-the-repository_1" class="md-nav__link">
    <span class="md-ellipsis">
      1. Setting up the repository
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2-configure-environment-variables" class="md-nav__link">
    <span class="md-ellipsis">
      2. Configure environment variables
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3-deploying-pixivfe" class="md-nav__link">
    <span class="md-ellipsis">
      3. Deploying PixivFE
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#binary" class="md-nav__link">
    <span class="md-ellipsis">
      Binary
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Binary">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-setting-up-the-repository_2" class="md-nav__link">
    <span class="md-ellipsis">
      1. Setting up the repository
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2-configure-environment-variables_1" class="md-nav__link">
    <span class="md-ellipsis">
      2. Configure environment variables
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3-deploying-pixivfe_1" class="md-nav__link">
    <span class="md-ellipsis">
      3. Deploying PixivFE
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#4-deploying-caddy" class="md-nav__link">
    <span class="md-ellipsis">
      4. Deploying Caddy
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#updating" class="md-nav__link">
    <span class="md-ellipsis">
      Updating
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#docker_1" class="md-nav__link">
    <span class="md-ellipsis">
      Docker
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Docker">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#docker-compose_1" class="md-nav__link">
    <span class="md-ellipsis">
      Docker Compose
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#docker-cli_1" class="md-nav__link">
    <span class="md-ellipsis">
      Docker CLI
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#binary_1" class="md-nav__link">
    <span class="md-ellipsis">
      Binary
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#acknowledgements" class="md-nav__link">
    <span class="md-ellipsis">
      Acknowledgements
    </span>
  </a>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          
            <div class="md-content" data-md-component="content">
              <article class="md-content__inner md-typeset">
                
                  

  
    <a href="https://codeberg.org/vnpower/pixivfe/edit/master/doc/hosting-pixivfe.md" title="Edit this page" class="md-content__button md-icon">
      
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z"/></svg>
    </a>
  
  


<h1 id="hosting-pixivfe">Hosting PixivFE<a class="headerlink" href="#hosting-pixivfe" title="Anchor link to this section for reference">&para;</a></h1>
<p>PixivFE can be installed using various methods. This guide covers installation using <a href="#docker">Docker</a> (recommended for production) and using a binary with a Caddy reverse proxy.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>PixivFE requires a Pixiv account token to access the API. Refer to the <a href="../obtaining-pixivfe-token/">Obtaining the <code>PIXIVFE_TOKEN</code> cookie</a> guide for detailed instructions.</p>
</div>
<h2 id="docker">Docker<a class="headerlink" href="#docker" title="Anchor link to this section for reference">&para;</a></h2>
<p><a href="https://www.docker.com/">Docker</a> lets you run containerized applications. Containers are loosely isolated environments that are lightweight and contain everything needed to run the application, so there's no need to rely on what's installed on the host.</p>
<p>Docker images for PixivFE are available at <a href="https://hub.docker.com/r/vnpower/pixivfe">Docker Hub</a>, with support for the amd64 platform.</p>
<h3 id="docker-compose">Docker Compose<a class="headerlink" href="#docker-compose" title="Anchor link to this section for reference">&para;</a></h3>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Deploying PixivFE using Docker Compose requires the Compose plugin to be installed. Follow these <a href="https://docs.docker.com/compose/install">instructions on the Docker Docs</a> on how to install it.</p>
</div>
<h4 id="1-setting-up-the-repository">1. Setting up the repository<a class="headerlink" href="#1-setting-up-the-repository" title="Anchor link to this section for reference">&para;</a></h4>
<p>Clone the PixivFE repository and navigate to the directory:</p>
<div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://codeberg.org/VnPower/PixivFE.git<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nb">cd</span><span class="w"> </span>PixivFE
</span></code></pre></div></td></tr></table></div>
<h4 id="2-set-token">2. Set token<a class="headerlink" href="#2-set-token" title="Anchor link to this section for reference">&para;</a></h4>
<p>Copy the <code>PHPSESSID</code> cookie value into <code>docker/pixivfe_token.txt</code>. This file will be used as a <a href="https://docs.docker.com/compose/use-secrets/">Docker secret</a>.</p>
<h4 id="3-configure-environment-variables">3. Configure environment variables<a class="headerlink" href="#3-configure-environment-variables" title="Anchor link to this section for reference">&para;</a></h4>
<p>Copy <code>.env.example</code> to <code>.env</code> and configure the variables as needed. Refer to the <a href="../environment-variables/">Environment variables</a> page for more information.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Ensure you set <code>PIXIVFE_HOST=0.0.0.0</code> in the <code>.env</code> file.</p>
<p>This allows PixivFE to bind to all network interfaces inside the container, which is necessary for Docker's network management to function correctly. The network access restrictions will be handled by Docker itself, not within PixivFE.</p>
</div>
<h4 id="4-compose">4. Compose!<a class="headerlink" href="#4-compose" title="Anchor link to this section for reference">&para;</a></h4>
<p>Run <code>docker compose up -d</code> to start PixivFE.</p>
<p>To view the container logs, run <code>docker logs -f pixivfe</code>.</p>
<h3 id="docker-cli">Docker CLI<a class="headerlink" href="#docker-cli" title="Anchor link to this section for reference">&para;</a></h3>
<h4 id="1-setting-up-the-repository_1">1. Setting up the repository<a class="headerlink" href="#1-setting-up-the-repository_1" title="Anchor link to this section for reference">&para;</a></h4>
<p>Clone the PixivFE repository and navigate to the directory:</p>
<div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-1-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://codeberg.org/VnPower/PixivFE.git<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nb">cd</span><span class="w"> </span>PixivFE
</span></code></pre></div></td></tr></table></div>
<h4 id="2-configure-environment-variables">2. Configure environment variables<a class="headerlink" href="#2-configure-environment-variables" title="Anchor link to this section for reference">&para;</a></h4>
<p>Copy <code>.env.example</code> to <code>.env</code> and configure the variables as needed. Refer to the <a href="../environment-variables/">Environment variables</a> page for more information.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Ensure you set <code>PIXIVFE_HOST=0.0.0.0</code> in the <code>.env</code> file.</p>
<p>This allows PixivFE to bind to all network interfaces inside the container, which is necessary for Docker's network management to function correctly. The network access restrictions will be handled by Docker itself, not within PixivFE.</p>
</div>
<h4 id="3-deploying-pixivfe">3. Deploying PixivFE<a class="headerlink" href="#3-deploying-pixivfe" title="Anchor link to this section for reference">&para;</a></h4>
<p>Run the following command to deploy PixivFE:</p>
<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Default port (<code>8282</code>)</label><label for="__tabbed_1_2">Custom port (e.g., <code>8080</code>)</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-2-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1"></a>docker<span class="w"> </span>run<span class="w"> </span>-d<span class="w"> </span>--name<span class="w"> </span>pixivfe<span class="w"> </span>-p<span class="w"> </span><span class="m">8282</span>:8282<span class="w"> </span>--env-file<span class="w"> </span>.env<span class="w"> </span>vnpower/pixivfe:latest
</span></code></pre></div></td></tr></table></div>
</div>
<div class="tabbed-block">
<div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-3-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1"></a>docker<span class="w"> </span>run<span class="w"> </span>-d<span class="w"> </span>--name<span class="w"> </span>pixivfe<span class="w"> </span>-p<span class="w"> </span><span class="m">8080</span>:8282<span class="w"> </span>--env-file<span class="w"> </span>.env<span class="w"> </span>vnpower/pixivfe:latest
</span></code></pre></div></td></tr></table></div>
</div>
</div>
</div>
<p>If you're planning to use a reverse proxy, modify the port binding to only listen on the localhost port (e.g., <code>127.0.0.1:8282:8282</code>). This ensures that PixivFE listens only on the localhost, making it accessible solely through the reverse proxy.</p>
<h2 id="binary">Binary<a class="headerlink" href="#binary" title="Anchor link to this section for reference">&para;</a></h2>
<p>This setup uses <a href="https://caddyserver.com/">Caddy</a> as the reverse proxy. Caddy is a great alternative to <a href="https://nginx.org/en/">NGINX</a> because it is written in the <a href="https://go.dev/">Go programming language</a>, making it more lightweight and efficient. Additionally, Caddy is easy to configure, providing a simple and straightforward way to set up a reverse proxy.</p>
<h3 id="1-setting-up-the-repository_2">1. Setting up the repository<a class="headerlink" href="#1-setting-up-the-repository_2" title="Anchor link to this section for reference">&para;</a></h3>
<p>Clone the PixivFE repository, navigate to the directory, and install the dependencies:</p>
<div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-4-1">1</a></span>
<span class="normal"><a href="#__codelineno-4-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://codeberg.org/VnPower/PixivFE.git<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nb">cd</span><span class="w"> </span>PixivFE
</span><span id="__span-4-2"><a id="__codelineno-4-2" name="__codelineno-4-2"></a>go<span class="w"> </span>install
</span></code></pre></div></td></tr></table></div>
<h3 id="2-configure-environment-variables_1">2. Configure environment variables<a class="headerlink" href="#2-configure-environment-variables_1" title="Anchor link to this section for reference">&para;</a></h3>
<p>Copy <code>.env.example</code> to <code>.env</code> and configure the variables as needed. Refer to the <a href="../environment-variables/">Environment variables</a> page for more information.</p>
<h3 id="3-deploying-pixivfe_1">3. Deploying PixivFE<a class="headerlink" href="#3-deploying-pixivfe_1" title="Anchor link to this section for reference">&para;</a></h3>
<p>Run <code>env $(cat .env | xargs) go run main.go</code> to start PixivFE. It will be accessible at <code>localhost:8282</code>.</p>
<h3 id="4-deploying-caddy">4. Deploying Caddy<a class="headerlink" href="#4-deploying-caddy" title="Anchor link to this section for reference">&para;</a></h3>
<p><a href="https://caddyserver.com/docs/install">Install Caddy</a> using your package manager.</p>
<p>In the PixivFE directory, create a file named <code>Caddyfile</code> with the following content:</p>
<div class="language-text highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Text Only</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-5-1">1</a></span>
<span class="normal"><a href="#__codelineno-5-2">2</a></span>
<span class="normal"><a href="#__codelineno-5-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1"></a>example.com {
</span><span id="__span-5-2"><a id="__codelineno-5-2" name="__codelineno-5-2"></a>  reverse_proxy localhost:8282
</span><span id="__span-5-3"><a id="__codelineno-5-3" name="__codelineno-5-3"></a>}
</span></code></pre></div></td></tr></table></div>
<p>Replace <code>example.com</code> with your domain and <code>8282</code> with the PixivFE port if you changed it.</p>
<p>Run <code>caddy run</code> to start Caddy.</p>
<h2 id="updating">Updating<a class="headerlink" href="#updating" title="Anchor link to this section for reference">&para;</a></h2>
<p>To update PixivFE to the latest version, follow the steps below that are relevant to your deployment method.</p>
<h2 id="docker_1">Docker<a class="headerlink" href="#docker_1" title="Anchor link to this section for reference">&para;</a></h2>
<h3 id="docker-compose_1">Docker Compose<a class="headerlink" href="#docker-compose_1" title="Anchor link to this section for reference">&para;</a></h3>
<ol>
<li>
<p>Pull the latest Docker image and repository changes:
   <div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-6-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1"></a>docker<span class="w"> </span>compose<span class="w"> </span>pull<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>git<span class="w"> </span>pull
</span></code></pre></div></td></tr></table></div></p>
</li>
<li>
<p>Restart the container:
   <div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-7-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1"></a>docker<span class="w"> </span>compose<span class="w"> </span>up<span class="w"> </span>-d
</span></code></pre></div></td></tr></table></div></p>
</li>
</ol>
<h3 id="docker-cli_1">Docker CLI<a class="headerlink" href="#docker-cli_1" title="Anchor link to this section for reference">&para;</a></h3>
<ol>
<li>
<p>Pull the latest Docker image and repository changes:
   <div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-8-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1"></a>docker<span class="w"> </span>pull<span class="w"> </span>vnpower/pixivfe:latest<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>git<span class="w"> </span>pull
</span></code></pre></div></td></tr></table></div></p>
</li>
<li>
<p>Stop and remove the existing container:
   <div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-9-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1"></a>docker<span class="w"> </span>stop<span class="w"> </span>pixivfe<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>docker<span class="w"> </span>rm<span class="w"> </span>pixivfe
</span></code></pre></div></td></tr></table></div></p>
</li>
<li>
<p>Restart the container:
   <div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-10-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1"></a>docker<span class="w"> </span>run<span class="w"> </span>-d<span class="w"> </span>--name<span class="w"> </span>pixivfe<span class="w"> </span>-p<span class="w"> </span><span class="m">8282</span>:8282<span class="w"> </span>--env-file<span class="w"> </span>.env<span class="w"> </span>vnpower/pixivfe:latest
</span></code></pre></div></td></tr></table></div></p>
</li>
</ol>
<h2 id="binary_1">Binary<a class="headerlink" href="#binary_1" title="Anchor link to this section for reference">&para;</a></h2>
<ol>
<li>
<p>Pull the latest changes from the repository:
   <div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-11-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1"></a>git<span class="w"> </span>pull
</span></code></pre></div></td></tr></table></div></p>
</li>
<li>
<p>Rebuild and start PixivFE:
   <div class="language-bash highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Bash</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-12-1">1</a></span>
<span class="normal"><a href="#__codelineno-12-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1"></a>go<span class="w"> </span>install
</span><span id="__span-12-2"><a id="__codelineno-12-2" name="__codelineno-12-2"></a>env<span class="w"> </span><span class="k">$(</span>cat<span class="w"> </span>.env<span class="w"> </span><span class="p">|</span><span class="w"> </span>xargs<span class="k">)</span><span class="w"> </span>go<span class="w"> </span>run<span class="w"> </span>main.go
</span></code></pre></div></td></tr></table></div></p>
</li>
</ol>
<h2 id="acknowledgements">Acknowledgements<a class="headerlink" href="#acknowledgements" title="Anchor link to this section for reference">&para;</a></h2>
<ul>
<li><a href="https://caddyserver.com/docs/running#keep-caddy-running">Keep Caddy Running</a></li>
</ul>







  
    
  
  
    
  


  <aside class="md-source-file">
    
      
  <span class="md-source-file__fact">
    <span class="md-icon" title="Last update">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
    </span>
    <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">August 27, 2024</span>
  </span>

    
    
      
  <span class="md-source-file__fact">
    <span class="md-icon" title="Created">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2Z"/></svg>
    </span>
    <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">August 27, 2024</span>
  </span>

    
    
    
  </aside>





                
              </article>
            </div>
          
          
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
        </div>
        
          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
  Back to top
</button>
        
      </main>
      
        <footer class="md-footer">
  
    
      
      <nav class="md-footer__inner md-grid" aria-label="Footer" >
        
          
          <a href="../environment-variables/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Environment variables">
            <div class="md-footer__button md-icon">
              
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
            </div>
            <div class="md-footer__title">
              <span class="md-footer__direction">
                Previous
              </span>
              <div class="md-ellipsis">
                Environment variables
              </div>
            </div>
          </a>
        
        
          
          <a href="../hosting-image-proxy-server/" class="md-footer__link md-footer__link--next" aria-label="Next: Hosting an image proxy server for Pixiv">
            <div class="md-footer__title">
              <span class="md-footer__direction">
                Next
              </span>
              <div class="md-ellipsis">
                Hosting an image proxy server for Pixiv
              </div>
            </div>
            <div class="md-footer__button md-icon">
              
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
            </div>
          </a>
        
      </nav>
    
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-copyright">
  
    <div class="md-copyright__highlight">
      GFDL-1.3-or-later
    </div>
  
  
    Made with
    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
      Material for MkDocs
    </a>
  
</div>
      
        <div class="md-social">
  
    
    
    
    
    <a href="https://codeberg.org/VnPower/PixivFE" target="_blank" rel="noopener" title="PixivFE on Codeberg" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.955.49A12 12 0 0 0 0 12.49a12 12 0 0 0 1.832 6.373L11.838 5.928a.187.14 0 0 1 .324 0l10.006 12.935A12 12 0 0 0 24 12.49a12 12 0 0 0-12-12 12 12 0 0 0-.045 0zm.375 6.467 4.416 16.553a12 12 0 0 0 5.137-4.213z"/></svg>
    </a>
  
    
    
    
    
    <a href="https://gitlab.com/pixivfe" target="_blank" rel="noopener" title="PixivFE on GitLab" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m23.6 9.593-.033-.086L20.3.98a.851.851 0 0 0-.336-.405.875.875 0 0 0-1 .054.875.875 0 0 0-.29.44L16.47 7.818H7.537L5.332 1.07a.857.857 0 0 0-.29-.441.875.875 0 0 0-1-.054.859.859 0 0 0-.336.405L.433 9.502l-.032.086a6.066 6.066 0 0 0 2.012 7.01l.01.009.03.021 4.977 3.727 2.462 1.863 1.5 1.132a1.008 1.008 0 0 0 1.22 0l1.499-1.132 2.461-1.863 5.006-3.75.013-.01a6.068 6.068 0 0 0 2.01-7.002z"/></svg>
    </a>
  
</div>
      
    </div>
  </div>
</footer>
      
    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>
    
      <div class="md-progress" data-md-component="progress" role="progressbar"></div>
    
    
    <script id="__config" type="application/json">{"base": "..", "features": ["navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.sections", "navigation.expand", "navigation.indexes", "toc.follow", "navigation.top", "content.code.copy", "navigation.footer", "content.action.edit", "content.code.annotate"], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
    
    
      <script src="../assets/javascripts/bundle.bd41221c.min.js"></script>
      
        <script src="https://unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
      
        <script src="../js/tablesort.js"></script>
      
    
  <script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "fade", "closeEffect": "fade", "slideEffect": "slide"});})</script></body>
</html>